#include <ros/ros.h>
#include <std_msgs/Int32.h>
#include <iostream>

int main(int argc, char **argv)
{
    ros::init(argc, argv, "number_publisher"); // 初始化ROS节点
    ros::NodeHandle nh;

    // 创建一个名为 "target_number" 的发布者，消息类型为 std_msgs::Int32
    ros::Publisher number_pub = nh.advertise<std_msgs::Int32>("target_number", 10);

    // 设置发布频率
    ros::Rate loop_rate(10); // 10Hz

    while (ros::ok())
    {
        std_msgs::Int32 msg;
        int input_number;

        // 提示用户输入数字
        std::cout << "Please enter a number: ";
        std::cin >> input_number;

        // 将输入的数字赋值给消息数据
        msg.data = input_number;

        // 发布消息
        number_pub.publish(msg);

        // 打印已发布的数字
        ROS_INFO("Published number: %d", msg.data);

        // 等待一段时间，保持发布频率
        loop_rate.sleep();
    }

    return 0;
}

